function verificarRequisitos() {
    new Ajax.Request("frmTwoMarco.html",
    {
        method: "get",
        asynchronous: false,
        onSuccess: function(t){
            $("divContenido").update(t.responseText);
        }
    });

    var pnlVerificarRequisitos = new Ext.Panel({
        autoLoad: {
            url :"frmVerificarRequisitos.jsp",
            callback: function(el,success,response,options) {
                var form = $("frmVerificarRequisitos");
                var ntidoIdentificador = form.ntidoIdentificador.value;
                cargarRequisitosDisponibles(ntidoIdentificador);
                cargarRecursosAsignados(ntidoIdentificador);
            }
        },
        title: "Requisitos",
        height: 500,
        bodyStyle: "background-color:#DFE8F6; border:0",
        closeAction: "destroy",
        tbar:[{
            text:'Imprimir',
            iconCls:'icon-print',
            handler: function(){
                printRequisitos();
            }
        }]
    });
    pnlVerificarRequisitos.render("divTop");
}

function cargarRequisitos(ntidoIdentificador) {
    cargarRequisitosDisponibles(ntidoIdentificador);
    cargarRecursosAsignados(ntidoIdentificador);
}

function cargarRequisitosDisponibles(ntidoIdentificador) {
    var form = $("frmVerificarRequisitos");
    new Ajax.Request("lista-requisitos!disponibles",{
        method: "post",
        parameters: {
            ntidoIdentificador: ntidoIdentificador
        },
        onSuccess: function(t) {
            var data = Ext.util.JSON.decode(t.responseText);
            var lstRequisitosDisponibles = form.lstRequisitosDisponibles;
            removeAllOptions(lstRequisitosDisponibles);
            for(var i=0;i<data.length;i++) {
                var option = document.createElement("option");
                option.value = data[i].ntidoIdentificador;
                option.appendChild(document.createTextNode(data[i].ctidoDescripcion));
                lstRequisitosDisponibles.appendChild(option);
            }
        }
    });
}

function cargarRecursosAsignados(ntidoIdentificador) {
    var form = $("frmVerificarRequisitos");
    new Ajax.Request("lista-requisitos!asignados",{
        method: "post",
        parameters: {
            ntidoIdentificador: ntidoIdentificador
        },
        onSuccess: function(t) {
            var data = Ext.util.JSON.decode(t.responseText);
            var lstRequisitosAsignados = form.lstRequisitosAsignados;
            removeAllOptions(lstRequisitosAsignados);
            for(var i=0;i<data.length;i++) {
                var option = document.createElement("option");
                option.value = data[i].ntidoIdentificador;
                option.appendChild(document.createTextNode(data[i].ctidoDescripcion));
                lstRequisitosAsignados.appendChild(option);
            }
        }
    });
}

function aisgnarRequisitos() {
    var form = $("frmVerificarRequisitos");
    var lstRequisitosDisponibles = form.lstRequisitosDisponibles;
    var lstRequisitosAsignados = form.lstRequisitosAsignados;
    var encontro = false;
    for(var i=0;i<lstRequisitosDisponibles.options.length;i++) {
        if(lstRequisitosDisponibles.options[i].selected) {
            ingresarRequisito(lstRequisitosDisponibles.options[i], lstRequisitosAsignados);
            encontro = true;
            break;
        }
    }
    if (encontro) {
        aisgnarRequisitos();
    }
}

function ingresarRequisito(requisito, lstRequisitosAsignados) {
    var form = $("frmVerificarRequisitos");
    var ntidoIdentificador = form.ntidoIdentificador.value;
    new Ajax.Request("requisito!input",{
        method: "post",
        asynchronous: false,
        parameters: {
            ntidoIdentificadorPrincipal: ntidoIdentificador,
            ntidoIdentificadorRequisito: requisito.value,
            crequObservacion: ""
        },
        onSuccess: function(t) {
            var data = Ext.util.JSON.decode(t.responseText);
            if (data.success) {
                lstRequisitosAsignados.appendChild(requisito);
            }
        }
    });
}

function revocarRequisitos() {
    var form = $("frmVerificarRequisitos");
    var lstRequisitosDisponibles = form.lstRequisitosDisponibles;
    var lstRequisitosAsignados = form.lstRequisitosAsignados;
    var encontro = false;
    for(var i=0;i<lstRequisitosAsignados.options.length;i++) {
        if(lstRequisitosAsignados.options[i].selected) {
            eliminarRequisito(lstRequisitosAsignados.options[i], lstRequisitosDisponibles);
            encontro = true;
            break;
        }
    }
    if (encontro) {
        revocarRequisitos();
    }
}

function eliminarRequisito(requisito, lstRequisitosDisponibles) {
    var form = $("frmVerificarRequisitos");
    var ntidoIdentificador = form.ntidoIdentificador.value;
    new Ajax.Request("requisito!eliminar",{
        method: "post",
        asynchronous: false,
        parameters: {
            ntidoIdentificadorPrincipal: ntidoIdentificador,
            ntidoIdentificadorRequisito: requisito.value
        },
        onSuccess: function(t) {
            var data = Ext.util.JSON.decode(t.responseText);
            if (data.success) {
                lstRequisitosDisponibles.appendChild(requisito);
            }
        }
    });
}

function printRequisitos(){
     var width  = screen.width-50;
    var height = screen.height-100;
    var left   = 10;
    var top    = 10;
    var form = $("frmVerificarRequisitos");
    var registroactual = form.ntidoIdentificador.value;
    var params = 'width='+width+',height='+height;
    params += ',top='+top+',left='+left;
    params += ',directories=no';
    params += ',location=no';
    params += ',menubar=no';
    params += ',resizable=yes';
    params += ',scrollbars=no';
    params += ',status=no';
    params += ',toolbar=no';
    window.open("RequisitosTramiteServlet.pdf?ntidocodigo="+registroactual,'windowname',params);
}
